
#include "STC32G_Timer.h"
#include "STC32G_GPIO.h"
#include "STC32G_NVIC.h"
#include "STC32G_Exti.h"
#include "STC32G_Delay.h"

#include "app_config.h"
#include "drv_jiffes.h"
#include "drv_key.h"
#include "debug.h"

#if TCFG_DRV_IOKEY_SUPPORT

#define D_ENCIO_K   P35     // 旋转编码器key按键IO


void drv_iokey_init(void)
{
    log_d("io key init.\n");
    P3_SPEED_LOW(GPIO_Pin_5);
    P3_DRIVE_MEDIUM(GPIO_Pin_5);
    P3_PULL_UP_ENABLE(GPIO_Pin_5);
    // P3_PULL_UP_DISABLE(GPIO_Pin_5);
    // P3_MODE_IO_PU(GPIO_Pin_5);
    P3_MODE_IN_HIZ(GPIO_Pin_5);
    P3_DIGIT_IN_ENABLE(GPIO_Pin_5);
}


uint8_t drv_iokey_get_value(void)
{   
    uint8_t key_value = NO_KEY;
    D_ENCIO_K = 1;
    if (D_ENCIO_K == 0) {
        delay_us(1000);
        if (D_ENCIO_K == 0) {
            key_value = 1;
            // log_d("D_ENCIO_K Down\n");
        }
    }

    return key_value;
}




#endif //TCFG_DRV_IOKEY_SUPPORT
